<div class="ng-date-picker" ng-class="{'ng-date-picker--open': isOpen, 'ng-date-picker--disabled': disabled}">
  <div class="ng-date-picker__input" ng-click="togglePicker($event)">
    <span class="ng-date-picker__placeholder" ng-if="!displayValue">{{ placeholder }}</span>
    <span class="ng-date-picker__value" ng-if="displayValue">{{ displayValue }}</span>
    <span class="ng-date-picker__clear" ng-if="clearable && displayValue && !disabled" ng-click="clear($event)">×</span>
    <span class="ng-date-picker__icon">📅</span>
  </div>

  <div class="ng-date-picker__panel" ng-if="isOpen">
    <div class="ng-date-picker__header">
      <button type="button" class="ng-date-picker__nav" ng-click="prevMonth()">&lt;</button>
      <div class="ng-date-picker__month">{{ currentMonthLabel }}</div>
      <button type="button" class="ng-date-picker__nav" ng-click="nextMonth()">&gt;</button>
    </div>
    <div class="ng-date-picker__weekdays">
      <span class="ng-date-picker__weekday" ng-repeat="label in weekdayLabels track by $index">{{ label }}</span>
    </div>
    <div class="ng-date-picker__days">
      <button
        type="button"
        class="ng-date-picker__day"
        ng-repeat="day in days track by day.key"
        ng-class="{
          'ng-date-picker__day--outside': day.isOutside,
          'ng-date-picker__day--today': day.isToday,
          'ng-date-picker__day--selected': day.isSelected,
          'ng-date-picker__day--disabled': day.isDisabled
        }"
        ng-disabled="day.isDisabled"
        ng-click="selectDay(day)"
      >
        {{ day.date.getDate() }}
      </button>
    </div>
    <div class="ng-date-picker__footer" ng-if="showToday || showClear">
      <button type="button" class="ng-date-picker__footer-btn" ng-if="showToday" ng-click="selectToday()">今天</button>
      <button type="button" class="ng-date-picker__footer-btn" ng-if="showClear" ng-click="clear($event)">清空</button>
    </div>
  </div>
</div>
